/* NOTICE
    OpenJaWS - Open Java Weather Station
    
    Copyright (C) 2008 Grant Gardner <grant@lastweekend.com.au>
    
    OpenJaWS is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
    
NOTICE */
package au.com.lastweekend.openjaws.plugins;

import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import au.com.lastweekend.openjaws.api.Readings;
import au.com.lastweekend.openjaws.api.WeatherPlugin;
import au.com.lastweekend.openjaws.api.WeatherPluginException;
import au.com.lastweekend.openjaws.util.StringUtil;

public class LogPlugin implements WeatherPlugin {

    private static final Logger LOG = LoggerFactory.getLogger(LogPlugin.class);

    public void process(Readings readings) throws WeatherPluginException {

        LOG.info(String.format("readingTime=%tc\n", readings.getReadingTime()));
        LOG.info(readings.getIndoorTemperature().getCurrent().format("indoorTemperature=%2.1f%s"));
        LOG.info(readings.getIndoorHumidity().getCurrent().format("indoorHumidity=%2.1f%s"));
        LOG.info(readings.getOutdoorTemperature().getCurrent().format("outdoorTemperature=%2.1f%s"));
        LOG.info(readings.getOutdoorHumidity().getCurrent().format("outdoorHumidity=%2.1f%s"));
        LOG.info(readings.getAirPressure().getCurrent().format("airPressure=%2.1f%s"));
        LOG.info(readings.getRain1H().getCurrent().format("rain1H=%2.1f%s"));
        LOG.info(readings.getRain24H().getCurrent().format("rain24H=%2.1f%s"));
        LOG.info(readings.getRainIncrement().format("rainIncrement=%2.1f%s"));
        LOG.info(readings.getWindSpeed().getCurrent().format("wind=%2.1f%s %s"));
        Map<String, Object> stationValues = readings.getStationValues();
        for (String key : stationValues.keySet()) {
            LOG.info(String.format("%s=%s", key, StringUtil.toString(stationValues.get(key))));
        }

    }

}
